
export const tableProps = {
  // 校验后显示错误的所有prop对应的错误提示
  // errorObject: {
  //   type: Object as PropType<TObject<string>>,
  //   default: () => ({}),
  // },
  useRoute: {
    type: Object,
    default: () => ({}),
  },
  dragRow: {
    type: Boolean,
    default: false,
  },
  dragEndMethod: {
    type: Function,
    default: () => true,
  },
  // 额外配置项
  keyField: {
    type: String,
    default: 'rowId',
  },
  isCrossTableDrag: {
    type: Boolean,
    default: false,
  },
  extraParams: {
    type: Object,
    default: () => ({}),
  },
  // 表尾列的对齐方式
  footerAlign: { type: String },
  // 表尾数据
  footerData: {
    type: Array,
    default: () => [],
  },
  // 是否启用行拖动
  enableRowDrop: { type: Boolean, default: false },
  // 是否启用列拖动
  enableColumnDrop: { type: Boolean, default: true },


  // 行的 className 的回调方法，也可以使用字符串为所有行设置一个固定的 className
  tableRowClassName: {
    type: Function,
    default: () => {
      return null;
    },
  },
  // 标题字体
  headerCellStyle: {
    type: Object,
    default: () => {
      return null;
    },
  },
  cellStyle: {
    type: Object,
    default: () => {
      return null;
    },
  },
  cellClassName: {
    type: Object,
    default: () => {
      return null;
    },
  },
  // 表格id
  tableId: {
    type: String,
    default: () => {
      return "";
    },
  },
  // 数据列表
  dataSource: {
    type: Array,
    default: function () {
      return [];
    },
  },
  // 表头
  columns: {
    type: Array,
    default: function () {
      return [];
    },
  },
  // 加载状态
  loading: {
    type: Boolean,
    default: true,
  },
  // 分页参数
  pageVo: {
    type: Object,
    default() {
      return null;
    },
  },
  // 树节点配置
  treeConfig: {
    type: Object,
    default() {
      return null;
    },
  },
  filterConfig: {
    type: Object,
    default() {
      return {
        remote: false,
      };
    },
  },
  rowId: {
    type: String,
    default: "",
  },
  keepSource: {
    type: Boolean,
    default: false,
  },
  /** 行编辑后触发 on-change-edit-row事件，注意：此功能必须 changeEditNeedTrigger:true, 且keepSource:true  **/
  changeEditNeedTrigger: {
    type: Boolean,
    default: false,
  },
  tableType: {
    type: String,
    default: "",
  },
  editConfig: {
    type: Object,
    default() {
      return null;
    },
  },
  editRules: {
    type: Object,
    default() {
      return {};
    },
  },
  // 是否显示自定义列
  customStorage: {
    type: Boolean,
    default: false,
  },
  // 表头筛选
  headerFilter: {
    type: Boolean,
    default: false,
  },
  // 自定义高度
  cusHeight: {
    type: Number,
    default: 0,
  },
  setHeight: {
    type: [String, Number],
    default: null,
  },
  size: {
    type: String,
    default: "mini",
  },
  columnMinWidth: {
    type: Number,
    default: 120,
  },
  maxHeight: {
    type: [String, Number],
    default: null,
  },
  minHeight: {
    type: [String, Number],
    default: null,
  },
  showHeader: {
    type: Boolean,
    default: true,
  },
  searchReserve: {
    type: Boolean,
    default: false,
  },
  // 多选是否禁止
  checkboxMethod: {
    type: Function,
    default() {
      return true;
    },
  },
  showAnimate: {
    type: String,
    default: "",
  },
  toolbarConfig: {
    type: Object,
    default() {
      return {
        custom: {
          allowFixed: true,
        },
      };
    },
  },
  showToolbar: {
    type: Boolean,
    default() {
      return true;
    },
  },
  subtractTableHeight: {
    type: Number,
    default: 0,
  },
  resizable: {
    type: Boolean,
    default() {
      return true;
    },
  },
  moduleName: {
    type: String,
    default: "",
  },
  // 是否保留勾选状态
  checkboxConfig: {
    type: Object,
    default: () => {
      return {};
    },
  },
  // 该方法可以通过返回值来重写默认的提示内容
  tooltipConfig: {
    type: Object,
    default: () => {
      return {};
    },
  },
  // 是否开启单击行 选中行
  selectRowBySingleClick: {
    type: Boolean,
    default() {
      return false;
    },
  },
  // 表尾单元格样式类名
  footerCellClassName: {
    type: String,
    default: "",
  },
  /** 表格的最大显示行数（用于动态计算表格maxHeight） */
  maxShowRows: {
    type: Number,
  },
  /** 表格的最小显示行数（用于动态计算表格的minHeight） */
  minShowRows: {
    type: Number,
  },
  defaultHeight: {
    type: Number,
    default: null,
  },
  /** 设置table的marginTop值，传true就默认有20+42=62px，传数字则以数字为准（解决table的自定义列按钮被覆盖的问题，当按钮被覆盖时，传true即可） */
  marginTop: {
    type: [Number, Boolean],
    default: null,
  },
  /** 表格的显示的固定行数（这样算出的表格高度就是固定高度） */
  showRows: {
    type: Number,
  },
  showHeaderOverflow: {
    type:[String,Boolean],
    default: 'tooltip',
  },
  showOverflow: {
    type:[String,Boolean],
    default:  'tooltip',
  },
  showFooterOverflow: {
    type:[String,Boolean],
    default: false,
  },
  labelField:{
    type:String,
    default: ''
  },
  checkStrictly:{
    type:Boolean,
    default: false
  },
  keepSourceKey: {
    type:String,
    default: ''
  }
};
